In a collaborative software environment, containers are mechanisms by which artifacts are aggregated according to some user criteria. For example, a container can be created by a user to aggregate artifacts associated with a given project. Some examples of containers are a folder of email messages and a task list that includes several tasks. In modern collaborative software environments, users frequently work with related artifacts of many different types.
Presently, many collaborative software systems do not provide containers that can contain artifacts of more than one type. Some collaborative software systems provide containers that can contain several types of artifacts. However, these systems are implemented in artifact specific schemes that impose restrictions on lifecycle operations of the artifacts, require duplication of data for container purposes, and/or add significant performance overhead to the collaborative software system.